package fr.afcepf.ai85.ent;

// Generated 21 mars 2013 17:20:56 by Hibernate Tools 3.4.0.CR1

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * AnneeScolaire generated by hbm2java
 */
@Entity
@Table(name = "annee_scolaire", catalog = "gepeto_db")
public class AnneeScolaire implements java.io.Serializable {

	private Integer idAnneescolaires;
	private Ecole ecole;
	private String anneescolaire;
	private Set<Directeur> directeurs = new HashSet<Directeur>(0);
	private Set<JoursEncadrement> joursEncadrements = new HashSet<JoursEncadrement>(
			0);
	private Set<Encadrant> encadrants = new HashSet<Encadrant>(0);

	public AnneeScolaire() {
	}

	public AnneeScolaire(String anneescolaire) {
		this.anneescolaire = anneescolaire;
	}

	public AnneeScolaire(Ecole ecole, String anneescolaire,
			Set<Directeur> directeurs, Set<JoursEncadrement> joursEncadrements,
			Set<Encadrant> encadrants) {
		this.ecole = ecole;
		this.anneescolaire = anneescolaire;
		this.directeurs = directeurs;
		this.joursEncadrements = joursEncadrements;
		this.encadrants = encadrants;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "ID_ANNEESCOLAIRES", unique = true, nullable = false)
	public Integer getIdAnneescolaires() {
		return this.idAnneescolaires;
	}

	public void setIdAnneescolaires(Integer idAnneescolaires) {
		this.idAnneescolaires = idAnneescolaires;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "IDENTIFIANT_ECOLE")
	public Ecole getEcole() {
		return this.ecole;
	}

	public void setEcole(Ecole ecole) {
		this.ecole = ecole;
	}

	@Column(name = "ANNEESCOLAIRE", nullable = false, length = 15)
	public String getAnneescolaire() {
		return this.anneescolaire;
	}

	public void setAnneescolaire(String anneescolaire) {
		this.anneescolaire = anneescolaire;
	}

	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name = "diriger", catalog = "gepeto_db", joinColumns = { @JoinColumn(name = "ID_ANNEESCOLAIRES", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "ID_DIRECTEUR", nullable = false, updatable = false) })
	public Set<Directeur> getDirecteurs() {
		return this.directeurs;
	}

	public void setDirecteurs(Set<Directeur> directeurs) {
		this.directeurs = directeurs;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "anneeScolaire")
	public Set<JoursEncadrement> getJoursEncadrements() {
		return this.joursEncadrements;
	}

	public void setJoursEncadrements(Set<JoursEncadrement> joursEncadrements) {
		this.joursEncadrements = joursEncadrements;
	}

	@ManyToMany(fetch = FetchType.LAZY, mappedBy = "anneeScolaires")
	public Set<Encadrant> getEncadrants() {
		return this.encadrants;
	}

	public void setEncadrants(Set<Encadrant> encadrants) {
		this.encadrants = encadrants;
	}

}
